package lt1894
/*
1894. 找到需要补充粉笔的学生编号
一个班级里有 n 个学生，编号为 0 到 n - 1 。每个学生会依次回答问题，编号为 0 的学生先回答，
然后是编号为 1 的学生，以此类推，直到编号为 n - 1 的学生，
然后老师会重复这个过程，重新从编号为 0 的学生开始回答问题。

给你一个长度为 n 且下标从 0 开始的整数数组 chalk 和一个整数 k 。
一开始粉笔盒里总共有 k 支粉笔。当编号为 i 的学生回答问题时，
他会消耗 chalk[i] 支粉笔。如果剩余粉笔数量 严格小于 chalk[i] ，
那么学生 i 需要 补充 粉笔。

请你返回需要 补充 粉笔的学生 编号 。


学生消耗粉笔的过程是重复的。记每一轮消耗粉笔的总量为 total，它等于数组 chalk 的元素之和。
因此，我们可以将粉笔数量 k对 total 进行取模，求得余数 k'
  以方便后续计算。由于 k'一定小于 total，因此我们只需要至多遍历一遍数组 chalk，
  同时模拟 k'减小的过程，即可以得到需要补充粉笔的学生编号。

细节

由于 total 可能会超过 32 位有符号整数的范围，因此对于一些整数类型有范围的语言，为了避免溢出，
需要使用 64 位整数存储 total。


*/
func chalkReplacer(chalk []int, k int) int {
    total := 0
    for _, v := range chalk {
        total += v
    }
    k %= total
    for i, c := range chalk {
        if k < c {
            return i
        }
        k -= c
    }
    return 0
}

